package edu.uncc.cs.watsonsim.nlp;
import static org.junit.Assert.*;
import java.util.Iterator;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.Before;
import org.junit.Test;
public class ApproxStringIntMapTest {
ApproxStringIntMap asim;
@Before
public void setUp() {
asim = new ApproxStringIntMap(new StringStack("moo", "far"));
}
@Test
public void testSize() {
assertEquals(0, asim.size());
asim.put("moo", 1);
assertEquals(1, asim.size());
}
@Test
public void testIsEmpty() {
assertTrue(asim.isEmpty());
asim.put("moo", 1);
assertFalse(asim.isEmpty());
}
@Test
public void testContainsKey() {
assertFalse(asim.containsKey("moo"));
asim.put("moo", 1);
assertTrue(asim.containsKey("moo"));
assertFalse(asim.containsKey("far"));
asim.put("erk", 7);
assertTrue(asim.containsKey("moo"));
assertTrue(asim.containsKey("erk"));
assertFalse(asim.containsKey("far"));
}
@Test
public void testGetPut() {
assertEquals(0, asim.get("moo")); // ! Keep this in mind!
asim.put("far", 1);
assertEquals(0, asim.get("moo"));
assertEquals(1, asim.get("far"));
asim.put("erk", 2);
assertEquals(0, asim.get("moo"));
assertEquals(2, asim.get("erk"));
}
@Test
public void testAddTo() {
assertEquals(0, asim.get("moo"));
asim.addTo("moo", 4);
assertEquals(4, asim.get("moo"));
asim.addTo("moo", 4);
assertEquals(8, asim.get("moo"));
}
@Test
public void testRemove() {
asim.put("moo", 1);
asim.put("far", 2);
assertTrue(asim.containsKey("far"));
asim.remove("far");
assertFalse(asim.containsKey("far"));
}
@Test
public void testClear() {
asim.put("moo", 1);
asim.put("far", 2);
assertTrue(asim.containsKey("far"));
asim.clear();
assertFalse(asim.containsKey("far"));
}
@Test
public void testIterator() {
asim.put("moo", 1);
asim.put("far", 2);
Iterator<Pair<String, Integer>> pairs = asim.iterator();
assertTrue(pairs.hasNext());
assertEquals(Pair.of("moo", 1), pairs.next());
assertTrue(pairs.hasNext());
assertEquals(Pair.of("far", 2), pairs.next());
assertFalse(pairs.hasNext());
}
}